home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 November
/
EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso
/
earcd
/
ead
/
ead23.dms
/
ead23.adf
/
Listati
/
MClock.asm
< prev
next >
Wrap
Assembly Source File
|
1990-05-29
|
9KB
|
308 lines
*****************************************************************************
* *
* Programma .... Memory Clock *
* *
* Autore ....... Roger Fischlin *
* *
* Versione ..... 1.00i *
* *
* Software ..... HiSoft Devpac V2.14 *
* *
* Hardware ..... Amiga 500/1000/2000/2500, Kickstart V1.2/1.3 *
* *
* Note ......... Revisione ed adattamento per EAD di Luigi Callegari *
* *
*****************************************************************************
incdir "dh1:includedevpac/" ; Modificare per propria directory
include intuition/intuition.i
include intuition/intuition_lib.i
include exec/memory.i
include exec/exec_lib.i
include graphics/graphics_lib.i
include libraries/dos_lib.i
include libraries/dos.i
include graphics/text.i
PRINT macro ; Macrodefinizione per stampa testi su finestra
move #\1,d0
move #\2,d1
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF Move
move #\3,d0
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF SetAPen
lea \4,a0
move.l #\5,d0
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF Text
endm
_main lea dosname,a1 ; Apertura della dos.library
moveq #0,d0
CALLEXEC OpenLibrary
tst.l d0
beq abbruch
move.l d0,_DOSBase
lea intname,a1 ; Apertura Intuition.library
moveq #0,d0
CALLEXEC OpenLibrary
tst.l d0
beq closedos
move.l d0,_IntuitionBase
lea grafname,a1 ; Apertura Graphics.library
moveq #0,d0
CALLEXEC OpenLibrary
tst.l d0
beq closeint
move.l d0,_GfxBase
lea windowdef,a0 ; Apertura finestra
CALLINT OpenWindow
tst.l d0
beq closegraf
move.l d0,MiaWindow
lea.l FONT,a0 ; Fonte in ROM Topaz.80
CALLGRAF OpenFont ; Apre fonte di default
move.l d0,Font
tst.l d0
beq closewindow
move.l d0,a0
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF SetFont
Schleife PRINT 5,18,3,Text1,4 ; Produce i testi
PRINT 5,28,3,Text2,4
PRINT 5,39,3,Text3,4
PRINT 5,49,3,Text4,4
moveq #MEMF_PUBLIC,d1; Alloca memoria
CALLEXEC AvailMem
move.l d0,d2
lea buffer,a0
bsr makeASCII ; Trasforma in ASCII
PRINT 45,18,1,buffer,8
moveq #MEMF_CHIP,d1 ; dasselbe wie oben, nur mit Chip-RAM
CALLEXEC AvailMem
move.l d0,d2
lea buffer,a0
bsr makeASCII
PRINT 45,28,1,buffer,8
move.l #Zeit,d1 ; Ora in D1
CALLDOS DateStamp
move.l Zeit+8,d0 ; 1/50 sec in dieser Minute in Sekunden
divu #50,d0
and.l #$ff,d0
lea.l Time+6,a0
bsr Convert
move.l Zeit+4,d0
divu #60,d0
and.l #$ff,d0
lea.l Time,a0
bsr Convert
move.l Zeit+4,d0
divu #60,d0
lsr.l #8,d0
lsr.l #8,d0
and.l #$ff,d0
lea.l Time+3,a0
bsr Convert
move.l Zeit,d0
lea.l Jahre,a0
move.l #77,d1
label1 addq #1,d1
sub.w (a0)+,d0
bpl label1
add.w -(a0),d0
move.l d0,d5
move.l (a0),d6
and.l #$ff,d1
cmp.w #99,d1
bls label2
sub.w #100,d1
label2 move.l d1,d0
and.l #$ff,d0
lea.l Date+6,a0
bsr Convert
btst #0,d6
beq label3
lea.l KeinSJahr,a0
bra label4
label3 lea.l Schaltjahr,a0
label4 move.l #-1,d1
label5 addq #1,d1
sub.w (a0)+,d5
bpl label5
add.w -(a0),d5
move.l d1,d0
and.l #$ff,d0
lea.l Date+3,a0
bsr Convert ; in ASCII
move.l d5,d0
and.l #$ff,d0
lea.l Date+0,a0
bsr Convert
PRINT 45,39,1,Time,8
PRINT 45,49,1,Date,8
move #0,d0
move #31,d1
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF Move
move #1,d0
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF SetAPen
move #135,d0
move #31,d1
move.l MiaWindow,a1
move.l wd_RPort(a1),a1
CALLGRAF Draw
move.l MiaWindow,a0 ; CloseWindow ?
move.l wd_UserPort(a0),a0
CALLEXEC GetMsg
tst.l d0
bne ende
move.l #40,d1
CALLDOS Delay
bra Schleife
ende move.l d0,a1
CALLEXEC ReplyMsg
move.l Font,a1 ; alles schließen
CALLGRAF CloseFont
closewindow move.l MiaWindow,a0
CALLINT CloseWindow
closegraf move.l _GfxBase,a1
CALLEXEC CloseLibrary
closeint move.l _IntuitionBase,a1
CALLEXEC CloseLibrary
closedos move.l _DOSBase,a1
CALLEXEC CloseLibrary
abbruch moveq #0,d0
rts
makeASCII
moveq #7,d0
lea.l buffer,a0
lea.l Potenzen,a1
next move #"0",d1
labela addq #1,d1
sub.l (a1),d2
bcc labela
subq #1,d1
add.l (a1),d2
move.b d1,(a0)+
tst.l (a1)+
dbra d0,next
moveq #6,d0
lea buffer,a0
clear cmp.b #'0',(a0)
bne fini
move.b #' ',(a0)+
dbra d0,clear
fini rts
Potenzen dc.l 10000000
dc.l 1000000
dc.l 100000
dc.l 10000
dc.l 1000
dc.l 100
dc.l 10
dc.l 1
dc.l 0
W_Gadgets equ WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!WINDOWSIZING
W_Extras equ SMART_REFRESH!ACTIVATE
Text1 dc.b "RAM "
even
Text2 dc.b "Chip"
even
Text3 dc.b "Time"
even
Text4 dc.b "Date"
even
Time dc.b "xx:xx:xx"
even
Date dc.b "xx.xx.xx"
even
windowdef dc.w 500,140
dc.w 135,53
dc.b -1,-1
dc.l CLOSEWINDOW
dc.l W_Gadgets!W_Extras
dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 135,21
dc.w 135,53
dc.w WBENCHSCREEN
intname INTNAME
grafname GRAFNAME
dosname DOSNAME
buffer ds.b 10
Zeit ds.l 3
_IntuitionBase ds.l 1
_GfxBase ds.l 1
_DOSBase ds.l 1
MiaWindow ds.l 1
TEXT ds.b 2
Font dc.l 0
FONT dc.l fontname
dc.w TOPAZ_EIGHTY
dc.b FS_NORMAL
dc.b FPF_ROMFONT
even
fontname dc.b "topaz.font",0
even
Convert move.l d0,d4
divu #10,d0
move.l d0,d2
mulu #10,d2
add.w #"0",d0
move.b d0,(a0)+
sub.w d2,d4
add.w #"0",d4
move.b d4,(a0)+
rts
Jahre dc.w 365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 365,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
dc.w 366,365,365,365,365
KeinSJahr dc.w 31,28,31,30,31,30,31,31,30,31,30,31
Schaltjahr dc.w 31,29,31,30,31,30,31,31,30,31,30,31